home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 096 / clrstat4.lqr / clrstat4.lbr / CALRSTAT.BAS (.txt) next >
Encoding:
GW-BASIC  |  2011-02-03  |  8.9 KB  |  207 lines

  1. 10   ' $linesize: 132 $title: 'CALRSTAT: RBBS CPC12.XX Statistics program' $subtitle: 'Version 1.4'
  2. 20   '************************************************************************
  3. 30   '* CALRSTAT: A Program to Pull Statistics from the RBBS-PC CALLERS File *
  4. 40   '*           Version 1.4 by Michael L. Brown  (NICBUL bbs)              *
  5. 50   '* (c) 1984 by Read Gilgen    This program may be copied and used free  *
  6. 60   '*    of charge provided that this notice is not changed or bypassed.   *
  7. 70   '************************************************************************
  8. 80   '
  9. 100  KEY OFF:CLS:LOCATE 13,36:PRINT "CALRSTAT"
  10. 110  LOCATE 15,20:PRINT "Statistics for the RBBS-PC CALLERS File"
  11. 120  LOCATE 16,24:PRINT "Version 1.4 by Michael L. Brown
  12. 130  LOCATE 17,29:PRINT "(c)1984 by Read Gilgen"
  13. 140  FOR PAUSE=1 TO 5000:NEXT
  14. 150  CLS:PRINT "This program will calculate statistics from the RBBS-PC
  15. 160  PRINT "CALLERS file.  Make sure that file is on the default"
  16. 170  PRINT "drive and then press any key to continue . . ."
  17. 180  ANS$=INPUT$(1)
  18. 190  PRINT:PRINT "Do you want to see the records as they are read?"
  19. 200  ANS$=INPUT$(1):IF ANS$="Y" OR ANS$="y" THEN SEE=-1 ELSE SEE=0
  20. 210  OPTION BASE 1:DIM DF(1000),DF$(1000),UP$(500),UP(500),SV(100),SV$(100):FIRST=-1
  21. 220  CLS:LOCATE 24,1:OPEN "R",#1,"callers",64:FIELD #1, 64 AS INFO$
  22. 230  UDX=LOF(1)/64:IF NOT SEE THEN CLS:LOCATE 20,10,0:PRINT "Reading record number"
  23. 240  FOR LOOP=UDX TO 1 STEP -1
  24. 250    GET #1,LOOP:IF NOT SEE THEN LOCATE 20,32,0:PRINT LOOP
  25. 260  IF MIN<10 THEN MIN$="0"+RIGHT$(STR$(MIN),1) ELSE MIN$=RIGHT$(STR$(MIN),2)
  26. 270  IF SEE THEN GOSUB 790
  27. 280      GOSUB 400
  28. 290  NEXT
  29. 300  IF SEE THEN GOSUB 790
  30. 310  GOTO 3000
  31. 400  IF LONGINFO$>"" THEN LONGINFO$=LONGINFO$+INFO$:GOTO 480
  32. 410  X=INSTR(INFO$,"on at")
  33. 420  IF X>0 AND FIRST THEN LATESTDATE$=MID$(INFO$,(X+6),8):FIRST=0
  34. 430  IF X>0 THEN FIRSTDATE$=MID$(INFO$,(X+6),8)
  35. 440  IF X>0 THEN LONGINFO$=INFO$:RETURN
  36. 450  IF SEE THEN PRINT INFO$;
  37. 460  GOSUB 900  'check for special info
  38. 470  RETURN
  39. 480  IF SEE THEN PRINT LONGINFO$;
  40. 485  IF INSTR(LONGINFO$,"2400") THEN BAUD24=BAUD24+1
  41. 490  IF INSTR(LONGINFO$,"1200") THEN BAUD12=BAUD12+1
  42. 500  IF INSTR(LONGINFO$,"300") THEN BAUD3=BAUD3+1
  43. 510  IF INSTR(LONGINFO$,"==Sw") THEN BAUD450=BAUD450+1
  44. 520  IF INSTR(LONGINFO$,"SYSOP") THEN SYSOP=SYSOP+1
  45. 530  IF INSTR(LONGINFO$,"DENIED") THEN DENIED=DENIED+1
  46. 590  'Calculate times
  47. 600  SEC=SEC+VAL(RIGHT$(LONGINFO$,2))
  48. 610    IF SEC>59 THEN MIN=MIN+1:SEC=SEC-60
  49. 620  MIN=MIN+VAL(MID$(LONGINFO$,124,2))
  50. 630    IF MIN>59 THEN HOUR=HOUR+1:MIN=MIN-60
  51. 640  HOUR=HOUR+VAL(MID$(LONGINFO$,121,1))
  52. 650  X=INSTR(INFO$,"N,8,1")
  53. 660  IF X>0 THEN NOPAR=NOPAR+1:GOTO 690
  54. 670  X=INSTR(INFO$,"NO PARITY")
  55. 680  IF X>0 THEN NOPAR=NOPAR+1 ELSE EVENPAR=EVENPAR+1
  56. 690  LONGINFO$=""
  57. 700  RETURN
  58. 790  ' Print running totals
  59. 800  IF HOUR<10 THEN HOUR$="00"+RIGHT$(STR$(HOUR),1) ELSE IF HOUR<100 THEN HOUR$="0"+RIGHT$(STR$(HOUR),2)
  60. 810  IF MIN<10 THEN MIN$="0"+RIGHT$(STR$(MIN),1) ELSE MIN$=RIGHT$(STR$(MIN),2)
  61. 820  IF SEC<10 THEN SEC$="0"+RIGHT$(STR$(SEC),1) ELSE SEC$=RIGHT$(STR$(SEC),2)
  62. 830  LOCATE 25,1:PRINT "TIME: ";HOUR$;":";MIN$;":";SEC$;
  63. 840  LOCATE 25,17:PRINT "1200:";BAUD12;" 300:";BAUD3;" 450:";BAUD450;"  DL:";DOWNLOADS;" DIF:";DOWNTOT;" ABT:";ABT;
  64. 850  RETURN
  65. 890  'store special information
  66. 900  IF INSTR(INFO$,"Abort") THEN ABT=ABT+1:RETURN
  67. 910  IF INSTR(INFO$,"using x") THEN XMODEM=XMODEM+1
  68. 920  IF INSTR(INFO$,"using X") THEN XMODEM=XMODEM+1
  69. 930  IF INSTR(INFO$,"using a") THEN ASCII=ASCII+1
  70. 940  IF INSTR(INFO$,"using A") THEN ASCII=ASCII+1
  71. 950  X=INSTR(INFO$,"Down"):IF X THEN DOWNLOADS=DOWNLOADS+1:DOWNFILE$=MID$(INFO$,8,X-9):GOTO 2000
  72. 960  X=INSTR(INFO$,">>"):IF X THEN UPLOADS=UPLOADS+1:UPFILE$=MID$(INFO$,6,X-7):GOTO 2200
  73. 970  IF INSTR(INFO$,"SV!") THEN SV=SV+1:SVFILE$=MID$(INFO$,10,10):GOTO 2400
  74. 980  IF INSTR(INFO$,"paged") THEN PG=PG+1:RETURN
  75. 990  IF INSTR(INFO$,"==Sw") THEN BAUD450=BAUD450+1:RETURN
  76. 1000  IF INSTR(INFO$,"450") THEN BAUD450=BAUD450+1:RETURN
  77. 1010  IF INSTR(INFO$,"Lockout") THEN LOCKOUT=LOCKOUT+1:RETURN
  78. 1020  IF INSTR(INFO$,"Password Attempt Failed") THEN ATTEMPT=ATTEMPT+1:RETURN
  79. 1030  RETURN
  80. 2000  WHILE NOT MATCH
  81. 2010    FINDIT=FINDIT+1
  82. 2020    IF DOWNFILE$=DF$(FINDIT) THEN DF(FINDIT)=DF(FINDIT)+1:MATCH=-1
  83. 2030    IF DF$(FINDIT)="" THEN 2060
  84. 2040  WEND
  85. 2050  GOTO 2110
  86. 2060  FOR FIND=1 TO FINDIT-1:IF DOWNFILE$<DF$(FIND) THEN 2070 ELSE NEXT:GOTO 2090
  87. 2070  FOR MOVE=FINDIT TO FIND+1 STEP -1:DF$(MOVE)=DF$(MOVE-1):DF(MOVE)=DF(MOVE-1):NEXT
  88. 2080    DF$(FIND)=DOWNFILE$:DF(FIND)=1:GOTO 2100
  89. 2090    DF$(FINDIT)=DOWNFILE$:DF(FINDIT)=1
  90. 2100   IF FINDIT>DOWNTOT THEN DOWNTOT=FINDIT
  91. 2110    MATCH=0:FINDIT=0:RETURN
  92. 2200  WHILE NOT MATCH
  93. 2210    FINDIT=FINDIT+1
  94. 2220    IF UPFILE$=UP$(FINDIT) THEN UP(FINDIT)=UP(FINDIT)+1:MATCH=-1
  95. 2230    IF UP$(FINDIT)="" THEN 2260
  96. 2240  WEND
  97. 2250  GOTO 2310
  98. 2260  FOR FIND=1 TO FINDIT-1:IF UPFILE$<UP$(FIND) THEN 2270 ELSE NEXT:GOTO 2290
  99. 2270  FOR MOVE=FINDIT TO FIND+1 STEP -1:UP$(MOVE)=UP$(MOVE-1):UP(MOVE)=UP(MOVE-1):NEXT
  100. 2280    UP$(FIND)=UPFILE$:UP(FIND)=1:GOTO 2300
  101. 2290    UP$(FINDIT)=UPFILE$:UP(FINDIT)=1
  102. 2300   IF FINDIT>UPTOT THEN UPTOT=FINDIT
  103. 2310    MATCH=0:FINDIT=0:RETURN
  104. 2400  WHILE NOT MATCH
  105. 2410    FINDIT=FINDIT+1
  106. 2420    IF SVFILE$=SV$(FINDIT) THEN SV(FINDIT)=SV(FINDIT)+1:MATCH=-1
  107. 2430    IF SV$(FINDIT)="" THEN 2460
  108. 2440  WEND
  109. 2450  GOTO 2510
  110. 2460  FOR FIND=1 TO FINDIT-1:IF SVFILE$<SV$(FIND) THEN 2470 ELSE NEXT:GOTO 2490
  111. 2470  FOR MOVE=FINDIT TO FIND+1 STEP -1:SV$(MOVE)=SV$(MOVE-1):SV(MOVE)=SV(MOVE-1):NEXT
  112. 2480    SV$(FIND)=SVFILE$:SV(FIND)=1:GOTO 2500
  113. 2490    SV$(FINDIT)=SVFILE$:SV(FINDIT)=1
  114. 2500   IF FINDIT>SVTOT THEN SVTOT=FINDIT
  115. 2510    MATCH=0:FINDIT=0:RETURN
  116. 2990  'Print totals
  117. 3000  CLS:PRINT "The following activity is reported for the period from "FIRSTDATE$;" to ";LATESTDATE$:PRINT
  118. 3010  PRINT "Total on-line time was";HOUR;"hours,";MIN;"minutes,";SEC;"seconds."
  119. 3015  PRINT "2400 baud calls =";BAUD24
  120. 3020  PRINT "1200 baud calls =";BAUD12
  121. 3030  PRINT " 300 baud calls =";BAUD3
  122. 3040  PRINT " 450 baud calls =";BAUD450
  123. 3050  PRINT "Calls at No Parity, 8 bits    =";NOPAR
  124. 3060  PRINT "Calls at Even Parity, 7 bits  =";EVENPAR
  125. 3070  PRINT:PRINT "Total SYSOP remote logons     =";SYSOP
  126. 3080  PRINT "Total operator pages          =";PG
  127. 3090  PRINT "Total logons denied           =";DENIED
  128. 3100  PRINT "Total lockouts                =";LOCKOUT
  129. 3110  PRINT "Total password attempt fails  =";ATTEMPT
  130. 3120  PRINT:PRINT "Different Download files      =";DOWNTOT
  131. 3130  PRINT "Total Download files          =";DOWNLOADS
  132. 3140  PRINT "Total Upload files            =";UPLOADS
  133. 3143  PRINT "Total Transfers using XMODEM  =";XMODEM
  134. 3146  PRINT "Total Transfers using ASCII   =";ASCII
  135. 3150  PRINT "Total aborted transfers       =";ABT
  136. 3160  PRINT "Total security violations     =";SV
  137. 4000  PRINT:PRINT "Do you want a hard copy of the totals? (Y/N)"
  138. 4010  ANS$=INPUT$(1):IF ANS$<>"Y" AND ANS$<>"y" THEN 10000
  139. 4020  PRINT "Make sure printer is on and ready.  Press any key to continue. . ."
  140. 4030  ANS$=INPUT$(1)
  141. 4040  FOR LOOP=1 TO 5:LPRINT:NEXT:LPRINT "The following activity is reported for the period from "FIRSTDATE$" to "LATESTDATE$:LPRINT
  142. 4050  LPRINT SPACE$(5);"Total on-line time was";HOUR;"hours,";MIN;"minutes,";SEC;"seconds."
  143. 4055  LPRINT:LPRINT SPACE$(5);"2400 baud calls =";BAUD24
  144. 4060  LPRINT:LPRINT SPACE$(5);"1200 baud calls =";BAUD12
  145. 4070  LPRINT SPACE$(5);" 300 baud calls =";BAUD3
  146. 4080  LPRINT SPACE$(5);" 450 baud calls =";BAUD450
  147. 4090  LPRINT SPACE$(5);"Calls at No Parity, 8 bits    =";NOPAR
  148. 4100  LPRINT SPACE$(5);"Calls at Even Parity, 7 bits  =";EVENPAR
  149. 4110  LPRINT:LPRINT SPACE$(5);"Total SYSOP remote logons     =";SYSOP
  150. 4120  LPRINT SPACE$(5);"Total operator pages          =";PG
  151. 4130  LPRINT SPACE$(5);"Total logons denied           =";DENIED
  152. 4140  LPRINT SPACE$(5);"Total lockouts                =";LOCKOUT
  153. 4150  LPRINT SPACE$(5);"Total password attempt fails  =";ATTEMPT
  154. 4160  LPRINT:LPRINT SPACE$(5);"Different Download files      =";DOWNTOT
  155. 4170  LPRINT SPACE$(5);"Total Download files          =";DOWNLOADS
  156. 4180  LPRINT SPACE$(5);"Total Upload files            =";UPLOADS
  157. 4183  LPRINT SPACE$(5);"Total Tranfers using XMODEM   =";XMODEM
  158. 4186  LPRINT SPACE$(5);"Total Tranfers using ASCII    =";ASCII
  159. 4190  LPRINT SPACE$(5);"Total aborted transfers       =";ABT
  160. 4200  LPRINT SPACE$(5);"Total security violations     =";SV
  161. 4210  LPRINT CHR$(12);
  162. 5000  PRINT:PRINT "Do you wish to print the download files information? (Y/N)"
  163. 5010  ANS$=INPUT$(1):IF ANS$<>"Y" AND ANS$<>"y" THEN GOTO 6000
  164. 5020  PRINT:PRINT  "Download files were:":PRINT
  165. 5030  FOR LOOP=1 TO 5:LPRINT:NEXT:LPRINT "The following activity is reported for the period from "FIRSTDATE$" to "LATESTDATE$:LPRINT
  166. 5040  LPRINT SPACE$(5);"Download files were:":LPRINT
  167. 5050  FOR LO=0 TO 50:FOR LI=1 TO 50:LOOP=LO*50+LI
  168. 5060      IF DF$(LOOP)="" THEN GOTO 5110
  169. 5070    T$=STR$(DF(LOOP)):PRINT DF$(LOOP);TAB(20)SPACE$(5-LEN(T$))T$" times."
  170. 5080    LPRINT SPACE$(5)DF$(LOOP)TAB(20)SPACE$(5-LEN(T$))T$" times."
  171. 5090     TOTAL=TOTAL+DF(LOOP)
  172. 5100  NEXT:LPRINT CHR$(12);:FOR L=1 TO 5:LPRINT:NEXT L,LO
  173. 5110  PRINT:PRINT "Total downloaded:";TOTAL
  174. 5120  LPRINT:LPRINT:LPRINT SPACE$(5);"Total downloaded:";TOTAL:TOTAL=0
  175. 5130  LPRINT CHR$(12);
  176. 6000  PRINT:PRINT "Do you wish to print the upload files information? (Y/N)"
  177. 6010  ANS$=INPUT$(1):IF ANS$<>"Y" AND ANS$<>"y" THEN GOTO 7000
  178. 6020  PRINT:PRINT  "Upload files were:":PRINT
  179. 6030  FOR LOOP=1 TO 5:LPRINT:NEXT:LPRINT "The following activity is reported for the period from "FIRSTDATE$" to "LATESTDATE$:LPRINT
  180. 6040  LPRINT SPACE$(5);"Upload files were:":LPRINT
  181. 6050  FOR LO=0 TO 50:FOR LI=1 TO 50:LOOP=LO*50+LI
  182. 6060      IF UP$(LOOP)="" THEN GOTO 6110
  183. 6070    T$=STR$(UP(LOOP)):PRINT UP$(LOOP);TAB(20)SPACE$(5-LEN(T$))T$" times."
  184. 6080    LPRINT SPACE$(5)UP$(LOOP)TAB(20)SPACE$(5-LEN(T$))T$" times."
  185. 6090     TOTAL=TOTAL+UP(LOOP)
  186. 6100  NEXT:LPRINT CHR$(12);:FOR L=1 TO 5:LPRINT:NEXT L,LO
  187. 6110  PRINT:PRINT "Total uploaded:";TOTAL
  188. 6120  LPRINT:LPRINT:LPRINT SPACE$(5);"Total uploaded:";TOTAL:TOTAL=0
  189. 6130  LPRINT CHR$(12);
  190. 7000  PRINT:PRINT "Do you wish to print the security violation information? (Y/N)"
  191. 7010  ANS$=INPUT$(1):IF ANS$<>"Y" AND ANS$<>"y" THEN GOTO 10000
  192. 7020  PRINT:PRINT  "Security violations were:":PRINT
  193. 7030  FOR LOOP=1 TO 5:LPRINT:NEXT:LPRINT "The following activity is reported for the period from "FIRSTDATE$" to "LATESTDATE$:LPRINT
  194. 7040  LPRINT SPACE$(5);"Security violations were:":LPRINT
  195. 7050  FOR LO=0 TO 50:FOR LI=1 TO 50:LOOP=LO*50+LI
  196. 7060      IF SV$(LOOP)="" THEN GOTO 7110
  197. 7070    T$=STR$(SV(LOOP)):PRINT SV$(LOOP)TAB(20)SPACE$(5-LEN(T$))T$" times."
  198. 7080    LPRINT SPACE$(5)SV$(LOOP)TAB(20)SPACE$(5-LEN(T$))T$" times."
  199. 7090     TOTAL=TOTAL+SV(LOOP)
  200. 7100  NEXT:LPRINT CHR$(12);:FOR L=1 TO 5:LPRINT:NEXT L,LO
  201. 7110  PRINT:PRINT "Total violations:";TOTAL
  202. 7120  LPRINT:LPRINT SPACE$(5);"Total violations:";TOTAL:TOTAL=0
  203. 7130  LPRINT CHR$(12);
  204. 10000  LOCATE 25,1:PRINT SPACE$(78);:END
  205. 10010  ' CALRSTAT   (c) 1984 by Read Gilgen
  206. 10020  '            (c) 1985 by Michael L. Brown (enhancements)
  207.